iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

從swift基礎出發的ARKit世界系列 第 3

Swift中基礎之基礎之基礎到不行之語法part2

  • 分享至 

  • xImage
  •  

第三天, 繼第二天基礎基礎到不能更基礎之後
再來part2吧!
此篇介紹function, closure, map, filter的基本寫法及簡化寫法
gogogo~~~~/images/emoticon/emoticon08.gif

//Function部分
//沒參數, 沒回傳值的函式(以下三種寫法)
func addNum(){
print("Add the number.")
}
addNum()
func addNum2()->(){
print("Add the number.")
}
addNum2()
func addNum3()->Void{
print("Add the number.")
}
addNum3()
//有參數, 沒回傳值的函式
func showNum(number1:String, number2:Int){
print("now show number (number1) and (number2)")
}
showNum(number1: "15", number2: 26)
//有參數, 有回傳值的函式
func addNum(number1:Int, number2:Int)->Int{
//第一種寫法
let result = number1 + number2
return result
//簡化後的寫法
return number1 + number2
}
let sum = addNum(number1: 2, number2: 5)
//內部參數跟外部參數
//呼叫用外部參數名, 函式內用內部參數名
func add(num1 number1:Int, num2 number2:Int)->Int{
print("Show (number1) and (number2)")
return number1 + number2
}
let add1 = add(num1: 2, num2: 5)
func add2(_ number1:Int, _ number2:Int)->Int{
print("Show (number1) and (number2)")
return number1 + number2
}
let add3 = add2(2,5)


Closure部分
//函式轉closure如何轉呢
//先看看函式
func addNum4(number1:Int, number2:Int)->Int{
return number1 + number2
}
let sum4 = addNum4(number1: 20, number2: 50)
//函式轉closure部分
//closure也是有型別的!型別就是(Int, Int)->Int
let addClosure2:(Int, Int)->Int = {
(number1:Int, number2:Int)->Int in
return number1 + number2
}
//簡化後變成如下程式碼
//簡化過程如下:
//1.能夠確認參數跟回傳值的型別, 可以刪除closure裡面參數跟回傳值的型別
//2.程式碼只有一行, 可以刪除return
//3.用$0,$1,...代替參數名稱
let addClosure3:(Int, Int)->Int = { $0 + $1 }
//closure也可以當成一個參數使用
func test(num1:Int, num2:Int, subNum:(Int, Int)->Int){
print(subNum(num1, num2))
}
test(num1:2, num2:3, subNum: addNum4)


Map部分
//map裡面要放closure
//map就是把陣列的每個值都拿出來做事
var array1 = [2,1,56,3,77,89,24]
//第一種寫法
let changeNum = array1.map({
//每次拿出來的數存進num
(num:Int) in
return num % 3
})
print(changeNum)
//樓上寫法簡化
let changeNum2 = array1.map(){"changeNum2 = ($0 % 3)"}
//樓上寫法再簡化
let changeNum2 = array1.map{"changeNum2 = ($0 % 3)"}


Filter部分
//篩選的概念
var array2 = [2,1,56,3,77,89,24]
//第一種寫法
let filterArr = array2.filter({
(num:Int)->Bool in
return num % 3 == 0
})
//樓上寫法簡化
let filterArr = array2.filter{$0 % 3 == 0}


上一篇
Swift中基礎之基礎之基礎到不行之語法part1
下一篇
try try用Swift寫出終極密碼App(1)
系列文
從swift基礎出發的ARKit世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言